package com.dao;

import com.dto.in.OrderListInfo;
import com.entity.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface OrderDao {
    List<RecordInfo> orderRecord(@Param("stdUserId") Integer stdUserId);

    List<RecordInfo> orderRecord1(@Param("teaUserId") Integer teaUserId);

    BigDecimal findTeacherHourPrice(@Param("teaUserId")Integer teaUserId);

    StudentInfo findZiJiGerMsg(@Param("userId")Integer userId);

    RecordInfo orderDetails(@Param("orderId") Integer orderId);

    int deleteOrder(@Param("orderId") Integer orderId);

    int addOrder(OrderListInfo orderListInfo);

    int addSmallOrder(@Param("id") int id,@Param("ke") String ke,@Param("price") BigDecimal price);

    int addSmallOrders(@Param("id") int id,@Param("ke") String ke,@Param("price") BigDecimal price);

    int updateRecordStatus(@Param("id")Integer id);

    ParentMsgInfo findOrderPayMsg(@Param("id")Integer id);

    BigDecimal findUserMoney(@Param("userId")Integer userId);

    BigDecimal findUserMoney1(@Param("userId")Integer userId);

    BigDecimal findUserMoney2(@Param("userId")Integer userId);

    int updateUserMoney1(@Param("userId")Integer userId);

    int updateUserMoney2(@Param("userId")Integer userId,@Param("totalPrice")BigDecimal totalPrice);

    int updateUserMoney3(@Param("userId")Integer userId,@Param("fhPrice")BigDecimal fhPrice);

    int updateOrderStatus(@Param("id")Integer id,@Param("nonceStr")String nonceStr,@Param("lyPrice")BigDecimal lyPrice,@Param("giftPrice")BigDecimal giftPrice,@Param("zzPrice")BigDecimal zzPrice);

    BigDecimal findUserGiftMoney(@Param("userId")Integer userId);

    List<RecordOrderInfo> findSmallOrder(@Param("id")Integer id);

    int findTeacherUserId(@Param("recordId")Integer recordId);

    int updateOrderIsEnd(@Param("recordId")Integer recordId);

    int insertFreezeMoney(@Param("teaUserId")Integer teaUserId,@Param("price")BigDecimal price,@Param("date") Date date);

    int updateUserMoney4(@Param("teaUserId")Integer teaUserId,@Param("price")BigDecimal price);

    int updateRecordOrderStatus(@Param("id")Integer id);

    int insertBill(@Param("userId")Integer userId,@Param("price")BigDecimal price,@Param("types")Integer types,@Param("des")String des,@Param("uuid")String uuid);

    int findOrderLocationCount(@Param("recordId")Integer recordId);

    int insertRefund(@Param("recordId")Integer recordId);

    int updateOrderRefundStatus(@Param("recordId")Integer recordId);

    int savePath(@Param("recordId")Integer recordId,@Param("thisLocation")String thisLocation,@Param("thisLat")String thisLat,@Param("thisLog")String thisLog,@Param("aimLocation")String aimLocation,@Param("aimLat")String aimLat,@Param("aimLog")String aimLog);

    List<LoginInfo> findDayRanking(@Param("limit")Integer limit);

    List<LoginInfo> findWeekRanking(@Param("limit")Integer limit);

    List<LoginInfo> findMonthRanking(@Param("limit")Integer limit);

    List<LoginInfo> findJiLuList(@Param("limit")Integer limit);

    List<SubjectInfo> findSubjectName(@Param("id")Integer id);

}
